package com.example.traning.mall.dal.dataobject.mall;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.example.traning.mall.framework.mybatis.core.BaseDO;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 商城-订单
 * </p>
 *
 * @author Lei Yu
 * @since 2025-04-29
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("mall_order")
public class MallOrder extends BaseDO {

    /**
     * 数据ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    private Long buyerId;

    /**
     * 用户名
     */
    private String buyerUsername;

    /**
     * 订单编号
     */
    private String orderNo;

    /**
     * 收货人
     */
    private String receiverName;

    /**
     * 收货电话
     */
    private String receiverPhone;

    /**
     * 收货地址
     */
    private String receiverAddress;

    /**
     * 商品数量
     */
    private Integer goodsNum;

    /**
     * 商品销售总价
     */
    private BigDecimal totalPrice;

    /**
     * 物流单号
     */
    private String logisticsNo;

    /**
     * 支付渠道：1=支付宝，2=微信
     */
    private Integer payChannel;

    /**
     * 支付方式：1=在线支付，2=货到付款
     */
    private Integer payMethod;

    /**
     * 订单状态: 0=待支付，1=已支付，待发货, 2=已发货/待收货，3=确认收货/已完成，4=用户关闭，5=平台关闭(商家)，6=系统调度关闭
     */
    private Byte orderState;

    /**
     * 支付时间
     */
    private LocalDateTime gmtPay;
}
